Anleitung zur Installation des IO-Warrior Treibers fr Linux 2.4.x


1. Vorbereitungen

1.1 Das Modul 'hid.o' patchen
Um zu verhindern, das der HID-Input Treiber sich um den IO-Warrior kmmert, ist ein Eintrag in der Sperrliste der Datei 'hid-core.c' notwendig. Diese Datei ist Bestandteil des Moduls 'hid.o'. Je nach Geschmack und / oder Notwendigkeiten kann mit der mitgelieferten Sourcedatei das Modul selber gebaut werden oder das fertige Modul mit root-Rechten in den entsprechenden Ordner des Rechners kopiert werden. Der Pfad fr diesen Ordner lautet normalerweise
	'/lib/modules/<version>/kernel/drivers/usb/'
Es empfiehlt sich in jedem Fall die Originaldatei an einem anderen Ort zu sichern. Wenn die Datei nur umbenannt wird, kann es dazu kommen, dass beide Module geladen werden.

1.2 Erzeugen der Gerteknoten
Die Zugriffe auf den IO-Warrior erfolgen ber Eintrge im '/dev'-Verzeichnis. Diese mssen im Normalfall jedoch erst noch erstellt werden. Zu diesem Zweck ist das Shellscript 'iowarrior_load' vorgesehen. Auch dieser Aufruf mu mit root-Rechten erfolgen. Mit seiner Hilfe werden die Gerteknoten '/dev/usb/iowarrior<X>' erzeugt, wobei <X> den Zahlen von 0 bis 15 entspricht. Es knnen damit bis zu acht IO-Warrior gleichzeitig angeschlossen werden (siehe auch Abschnitt 3.).


2. Installieren des IO-Warrior Treibers

Wenn der Treiber nur zu Testzwecken geladen werden soll, so gengt die Ausfhrung von 'insmod iowarrior.o'. Um den Treiber wieder zu entladen entsprechend 'rmmod iowarrior', sofern dies vom Kernel untersttzt wird.
Ansonsten sollte man die Datei 'iowarrior.o' an die gleiche Stelle kopieren, wie zuvor 'hid.o'. Danach mssen noch die Modulabhngigkeiten aktuallisiert werden und der Treiber fr die IO-Warrior kann geladen werden. Das erfolgt mit
	depmod -e -A
	modprobe iowarrior
Soll der Treiber bei jedem Systemstart geladen werden, so ist ein Eintrag in die Datei '/etc/init.d/boot.local' vorzunehmen. Dieser Eintrag lautet dann z.B. "modprobe iowarrior". Der Treiber ist auch im Source mit Headerdatei beigefgt (iowarrior.c, .h).


3. Zugriffe auf den IO-Warrior

Fr jedes Interface des IO-Warrior wird ein Gerteknoten belegt, d.h. die aktuellen IO-Warrior belegen zwei Gerteknoten. Den ersten fr den Zugriff auf die einfache I/O-Funktion und den zweiten fr die Special Mode Functions. Der Treiber besitzt einen internen Puffer von z. Zt. 16 Paketen pro Interface. Wenn es zu einem Pufferberlauf kommt, so wird das lteste Paket verworfen. Um feststellen zu knnen, ob ein Pufferberlauf stattgefunden hat, wird jedem Paket eine Seriennummer mitgegeben (nicht zu verwechseln mit der Seriennummer des IO-Warriors). Dabei handelt es sich um einen vorzeichenlosen 8-Bit Wert, der fr jedes Paket um eins erhht wird ( ... 254, 255, 0, 1, usw.). Diese Seriennummer steht jedoch nur bei der Dateioperation "read" zur Verfgung und nicht bei Lesezugriffen mittels "ioctl". Um die Seriennummer zu erhalten, mu der Lesepuffer der "read"-Funktion um ein Byte erweitert werden. In diesem befindet sich dann nach erfolgreicher Ausfhrung die Seriennummer des Paketes.
Weitere Einzelheiten zur Ansteuerung eines IO-Warrior knnen den Beispielprogrammen entnommen werden.
